from multiprocessing import Pool
from time import sleep
import time
import os

def task(id):
    begin=time.time()
    print('开始任务：  进程号{}  进程名{}'.format(os.getpid(),id))
    sleep(1)
    end = time.time()
    print('结束任务：  进程号{}  进程名{}'.format(os.getpid(),id))
    return id

container=[]
def call_back(n):
    container.append(n)


if __name__ == '__main__':
    pool=Pool(3)
    for i in range(5):
        ''' 
            非阻塞形式
            task:要执行的函数
            args:传给task函数的参数
            callback:task返回值传给callback函数
        '''
        pool.apply_async(task,args=(i,),callback=call_back)

    pool.close()#关闭进程池
    pool.join()#阻塞主进程
    print(container)
    print('----------over-----------')


'''
开始任务：  进程号11624  进程名0
开始任务：  进程号8416  进程名1
开始任务：  进程号15288  进程名2
结束任务：  进程号11624  进程名0
开始任务：  进程号11624  进程名3
结束任务：  进程号8416  进程名1
开始任务：  进程号8416  进程名4
结束任务：  进程号15288  进程名2
结束任务：  进程号11624  进程名3
结束任务：  进程号8416  进程名4
[0, 1, 2, 3, 4]
----------over-----------
'''